Static Analysis of CLP Programs overNumeric

نویسندگان

  • Roberto Bagnara
  • Roberto Giacobazzi
  • Giorgio Levi
چکیده

Extended Abstract Constraint logic programming (CLP) is a generalization of the pure logic programming paradigm, having similar model-theoretic, xpoint and operational semantics 9]. Since the basic operational step in program execution is a test for solvability of constraints in a given algebraic structure, CLP has in addition an algebraic semantics. CLP is then a general paradigm which may be instantiated on various semantic domains, thus achieving a good expressive power. One relevant feature is the distinction between testing for solvability and computing a solution of a given constraint formula. In the logic programming case, this corresponds to the uniication process, which tests for solvability by computing a solution (a set of equations in solved form or most general uniier). In CLP, the computation of a solution of a constraint is left to a constraint solver, which does not aaect the semantic deenition of the language. This allows diierent computational domains, e.g. real arithmetic, to be considered without requiring complicated encodings of data objects as rst order terms. Since the fundamental linguistic aspects of CLP can be separated from the details speciic to particular constraint systems, it seems natural to parameterize the semantics of CLP languages with respect to the underlying constraint system 16]. For example, considering a domain of \abstract constraints" instead of the \concrete constraints" that are actually manipulated during program execution, we obtain for free a formal treatment of abstract interpretation of CLP programs: this provides a foundation for dataaow analysis and program manipulation of CLP programs. The original contribution of the present work is the integration of approximate inference techniques, well known in the eld of artiicial

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Static Analysis of CLP Programs over Numeric Domains

Constraint logic programming (CLP) is a generalization of the pure logic programming paradigm, having similar model-theoretic, fixpoint and operational semantics [9]. Since the basic operational step in program execution is a test for solvability of constraints in a given algebraic structure, CLP has in addition an algebraic semantics. CLP is then a general paradigm which may be instantiated on...

متن کامل

Deadlock Guided Testing in CLP

Static deadlock analyzers might be able to verify the absence of deadlock. However, they are usually not able to detect its presence. Also, when they detect a potential deadlock cycle, they provide little (or even no) information on their output. Due to the complex flow of concurrent programs, the user might not be able to find the source of the anomalous behaviour from the abstract information...

متن کامل

Slicing of Constraint Logic Programs

Abstract. Slicing is a program analysis technique originally developed for imperative languages. It facilitates understanding of data flow and debugging. This paper discusses slicing of Constraint Logic Programs. Constraint Logic Programming (CLP) is an emerging software technology with a growing number of applications. Data flow in constraint programs is not explicit, and for this reason the c...

متن کامل

Analysis of Linear Hybrid Systems in CLP

In this paper we present a procedure for representing the semantics of linear hybrid automata (LHAs) as constraint logic programs (CLP); flexible and accurate analysis and verification of LHAs can then be performed using generic CLP analysis and transformation tools. LHAs provide an expressive notation for specifying real-time systems. The main contributions are (i) a technique for capturing th...

متن کامل

Specifications, and an Extensible Assertion Language for Program Validation and Debugging

Abs t r ac t . We present a framework for the application of abstract interpretation as an aid during program development, rather than in the more traditional application of program optimization. Program validation and detection of errors is first performed statically by comparing (partial) specifications written in terms of assertions against information obtained from static analysis of the pr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1992